C vs. Java
프로그래밍 업계(?)의 양대 산맥인 C언어와 Java 언어에 대한 간략한 차이를 설명하고자 합니다.
프로그래밍에 대한 깊은 이해나 학문적인 이해보다는 실무적인 차원에서 두 언어에 대한 차이를 설명하고자 합니다.
컴파일 (Compile)
C
컴파일은 사람이 알아들 수 있도록 (물론 코딩을 배운 사람이 알아들 수 있습니다) 작성한 프로그래밍 언어를 기계가 알아들 수 있도록 번역한다는 의미로 해석할 수 있습니다.
C언어의 경우 일반적으로 4단계를 거쳐서 텍스트 파일에 가까운 .c 에서 실행 가능한 .exe 실행파일이 생성된다고 합니다.
출처: https://www.sitesbay.com/cprogramming/c-compile-link-program |
4개의 과정을 그냥 하나의 과정인 컴파일로 보는 견해도 있습니다.
출처: https://www.sitesbay.com/cprogramming/c-compile-link-program |
중요한 점은 C언어의 경우 컴파일 과정을 거치면, 실행가능한 실행파일이 생긴다는 것입니다.
Java
자바는 컴파일 과정에서 .java 파일이 .class 파일로 변환됩니다.
.class 파일은 바이너리 형태의 파일이며, 단독으로는 실행할 수 없습니다.
차이점
C언어는 운영체계마다 고유한 컴파일러가 있어서, 운영체계마다 다른 실행파일을 만들어서 배포합니다.
Java는 운영체계마다 고유한 Virtual Machine이 있어서, 동일한 .class 파일을 각각 다른 운영체계에서 실행가능합니다.
따라서, 이와 같이 생각할 수도 있습니다.